{{tag>dépôts apt}}
----

====== Comment créer votre propre dépôt Ubuntu ? ======

Cette courte documentation explique comment utiliser **debarchiver** pour créer et maintenir un dépôt Ubuntu et ainsi mettre à disposition vos propres paquets Ubuntu . 






===== Installation =====

On commence par installer [[:apache2]], de manière basique (pour une utilisation plus avancée, consultez le lien précédent) :

  sudo apt-get install apache2

Puis on installe debarchiver et dpkg-scanpackages :

  sudo apt-get install debarchiver devscripts




===== Configuration =====


Ensuite il faut créer les repertoires qui accueilleront les paquets :

  sudo mkdir -p /var/www/ubuntu
  sudo mkdir /var/www/ubuntu/dists/
  sudo mkdir /var/www/ubuntu/_incoming/   

Le répertoire dists contiendra l'arborescence du dépôt et _incoming sera le répertoire où debarchiver viendra chercher les nouveaux paquets pour les placer  au sein de l'arborescence.

Enfin il suffit [[:tutoriel:comment_editer_un_fichier|d'éditer le fichier]] **/etc/debarchiver.conf** et de modifier les paramètres suivants :

  
  $destdir = "/var/www/ubuntu/dists";
  $inputdir = "/var/www/ubuntu/_incoming";
  @distributions = ('dapper', 'edgy', 'feisty', 'gutsy');
  @sections = ('main', 'universe', 'multiverse');


Si vous souhaiter recevoir un message lorsqu'un paquet est ajouté remplissez la section :

  # @mailtos = ('Maintainer',          The Maintainer field in control file
  #             'Uploaders',           The Uploaders field in control file
  #             '@bar.com',            User id @bar.com that own the changes file
  #             'installer@foo.com',   An explicit email address
  #             'Changed-By');         The email in the changelog file



===== Initialisation =====

Il faut maintenant créer l'arborescence du dépôt :

  sudo debarchiver

Vérifier le résultat :

  ls -lR /var/www/ubuntu/dists


Un script cron se trouve dans ///etc/cron.d/debarchiver//. Par défaut debarchiver est executé toutes les 5 minutes. Le répertoire _incoming est alors scanné à la recherche de nouveaux paquets à ajouter sur le dépôt. 




===== Publier le dépôt =====

L'arborescence peut être rendu publique par HTTP ou FTP.
Nous prenons ici l'exemple d'un serveur apache2.

Voici la configuration d'un virtual host (ubuntu.votredomaine.com)

  <VirtualHost *:80>
    ServerName ubuntu.votredomaine.com
    ServerAlias ubuntu.votredomaine.com
    
    ServerAdmin webmaster@votredomaine.com
    DocumentRoot /var/www/ubuntu
    ErrorLog /var/log/apache2/ubuntu-error.log
    CustomLog /var/log/apache2/ubuntu-access.log combined
  </VirtualHost> 
   
  <Directory "/data/www/ubuntu">
    Options Indexes Includes FollowSymLinks MultiViews
    IndexOptions FancyIndexing SuppressHTMLPreamble NameWidth=*
    IndexIgnore _incoming _style
    HeaderName /_style/HEADER.html
    ReadmeName /_style/README.html
  </Directory>

La commande IndexIgnore permet de cacher le répertoire _incoming.

HEADER.html et README.html permettent d'améliorer le rendu visuel de l'aborescence. 





===== Ajouter un paquet =====
 
Placer tous les fichiers générés pendant la création du paquet (pas uniquement le .deb) dans le répertoire _incoming et attendre 5 minutes.

Alain : Quels sont ces fichiers à ajouter ? Dans quel dossier sont-ils ? J'ai créé un deb, mais je ne vois que le fichier deb.

Si vous êtes pressé exécuter directement la commande : 

  sudo debarchiver -so



===== Utiliser le dépôt =====

[[tutoriel:comment modifier sources maj|Ajouter les dépôts]] créé:

  deb http://ubuntu.votredomaine.com/ feisty main universe multiverse
  deb-src http://ubuntu.votredomaine.com feisty main universe multiverse

----
//Contributeurs: [[utilisateurs:Fabien26]].//